PrecSezione 4.1: Teorema del campionamento SuCapitolo 4: Campionamento, quantizzazione ed elaborazione numerica Section 4.3: Trasformata di Fourier di sequenzeSegue

## 4.2Quantizzazione↓

Senza entrare nei dettagli di come sia effettivamente realizzato il circuito [61] [61]Vedi ad es. `http://sms.unipv.it/misure/ME/Conversione_A-D_Slides.pdf` di un quantizzatore, limitiamoci a definirne la funzione come quella di suddividere la dinamica Δx dei possibili valori x in ingresso in L= 2M intervalli [62] [62]Come noto, per individuare uno tra L possibili oggetti occorrono M= log2⌈L⌉ bit, e scegliendo L come una potenza di due, si ottiene il risultato esatto. Ad esempio, scegliendo L= 64, si ottiene M= 6. di ampiezza Δq=(Δx)/(L), ed associare ad ogni campione di segnale x che ricade entro l’intervallo Ik, lo stesso valore
(o livello) xq=xk che corrisponde al centro dell’intervallo Ik, commettendo quindi un errore ϵq=x−xq, come rappresentato in figura, ed il cui effetto si riperquote in fase di restituzione d/a, come descritto nella figura che segue.
Quindi, ogni valore quantizzato xq viene rappresentato per mezzo di un codice binario cq con un numero fisso M di bit, in modo da ottenere una frequenza binaria fb=M⋅fc bit/secondo. Lo stesso codice, quando ricevuto dal convertitore d/a, produrrà la generazione di un campione di valore pari ad xq. Al § 18.1↓ l’argomento della codifica di sorgente↓ verrà ripreso, e applicato al caso specifico del segnale vocale.
Procediamo ora con una prima analisi di due diversi modi di scegliere il codice da associare ad ogni livello.

### 4.2.1Quantizzazione lineare↓

Il primo caso è quello in cui ad ogni livello k, con k= 0, 1, ⋯,L− 1, si associa la rappresentazione binaria stessa di k (es.: se k= 3, cq= 11): dato che anche gli intervalli Ik sono tutti di eguale ampiezza, la caratteristica ingresso-uscita del quantizzatore è uno zig zag in diagonale, come mostrato nella parte destra di fig. 4.13↓; inoltre, realizzando l’intervallo centrale a cavallo di x= 0, si limita il massimo errore a ±(Δq)/(2), ma il questo caso il numero di intervalli (e di livelli) risulta dispari, e pari ad L− 1. Notiamo ora che, in accordo alla teoria velocità-distorsione (§ 17.1.2.1↓), più si sceglie un numero M di bit/campione piccolo (riducendo quindi la velocità binaria), e maggiore sarà la distorsione, che in questa sede identifichiamo nel rapporto SNRq tra la potenza Px del segnale non quantizzato, e quella Pϵ del rumore di quantizzazione.

#### 4.2.1.1SNR di quantizzazione↓

Individuiamo la relazione che lega SNRq al numero di bit/campione M, determinando innanzitutto una espressione per la potenza del segnale Px, e quindi per quella del rumore Pϵ, con l’aiuto del grafico mostrato in fig. 4.13↓,
Figura 4.13 Processo di quantizzazione per segnali a distribuzione di ampiezza uniforme
e adottando l’ipotesi semplificativa che i valori in ingresso al campionatore abbiano origine da un processo ergodico a media nulla, e che soprattutto siano rappresentati da una v.a. con densità di probabilità uniforme pX(x)  =(1)/(Δx)rectΔx(x). In queste ipotesi, la potenza dei campioni è pari alla varianza della v.a. x, e risulta (vedi § 7.2.3↓)
Px=σ2x=(Δ2x)/(12)
Per quanto riguarda la potenza del segnale di errore, consideriamo che in fase di restituzione il campione quantizzato al livello k sarà riprodotto con il valore xq=xk=kΔq−(Δx)/(2), commettendo l’errore ϵq=x−xq, di entità limitata entro l’intervallo ±(Δq)/(2). Di nuovo, supponiamo che anche ϵq sia una v.a. uniformemente distribuita tra ±(Δq)/(2), ed indipendente [63] [63]Questa ed altre ipotesi adottate sono palesemente non vere, ma permettono di giungere ad un risultato abbastanza semplice, e che può essere molto utile nel dimensionamento di massima degli apparati. da xk; pertanto, la potenza della componente di errore è anche qui pari alla varianza, e cioè
Pϵ=σ2ϵ=(Δ2q)/(12)=(1)/(12)⎛⎝(Δx)/(L− 1)⎞⎠2
Siamo finalmente in grado di valutare l’SNR di quantizzazione:
SNRq=(Px)/(Pϵ)=(Δ2x)/(12)12⎛⎝(L− 1)/(Δx)⎞⎠2=(L− 1)2≅L2
in cui l’ultima approssimazione ha validità nel caso evidente in cui L≫1. Il risultato mostra che l’SNRq cresce in modo quadratico con l’aumentare dei livelli, ovvero se L raddoppia SNRq quadruplica. Ricorrendo alla notazione in decibel [64] [64]Una discussione relativa alla misura delle grandezze in decibel, è fornita al § 14.4↓. Qui ci limitiamo ad usare i dB come misura relativa di un rapporto, ossia
SNRq(dB)= 10log10(Px)/(Pϵ)= 10log10Px− 10log10Pϵ=Px(dBV2)−Pϵ(dBV2)
in cui le grandezze espresse in dBV2 rappresentano potenze di segnale di tensione, in unità logaritmiche. per l’SNR, otteniamo il risultato SNRq(L)|dB= 10log10L2= 20log10L e, ricordando che L= 2M, si ottiene
(6.19) SNRq(M)|dB=M⋅20log102≃6⋅M dB
dato che log102≃0.3. In modo simile, valutiamo il miglioramento in dB ottenibile aumentando di uno il numero di bit per ogni campione, ovvero raddoppiando il numero di livelli: SNRq(2L)|dB= 20log102L= 20log10L+ 20log102≅SNRq(L)|dB+ 6dB. Pertanto ogni bit in più, provoca un miglioramento di 6 dB per l’SNRq.
Consideriamo ora cosa accade se il segnale in ingresso x ha una dinamica minore di quanto previsto: in tal caso σ2x si riduce, mentre σ2ϵ=(1)/(12)⎛⎝(Δx)/(L− 1)⎞⎠2 non cambia, e dunque SNRq peggiora, come se avessimo ridotto i livelli. Ma la tecnica illustrata di seguito, è capace di mantenere un SNRq elevato anche con bassi livelli di segnale.

### 4.2.2Quantizzazione logaritmica↓ e ↓codifica PCM

La tecnica che ora illustriamo nasce sia come risposta al problema appena evidenziato, ossia del peggioramento di SNRq in presenza di bassi segnali, sia in considerazione del fatto che in realtà il processo x non ha distribuzione di ampiezza uniforme come ipotizzato sopra, rendendo il risultato (6.19↑) di ridotta utilità pratica.
Si può mostrare [65] [65]Vedi ad es. `http://en.wikipedia.org/wiki/Quantization_(signal_processing)` che, per una generica pX(x), il quantizzatore ottimo (che rende minimo SNRq) non suddivide la dinamica Δx in L− 1 intervalli Ik di uguale estensione Δq=(Δx)/(L− 1), ma utilizza intervalli di estensione variabile Δq(k) diversa per ogni k, ed in particolare di estensione ridotta nelle regioni per le quali pX(x) è più grande. In questo modo, ai valori x più probabili (e quindi più frequenti) corrispondono intervalli di estensione ridotta, producendo in corrispondenza degli stessi un errore di quantizzazione ridotto, sia in termini di ampiezza che di potenza σ2q(k), riducendone così il contributo alla potenza totale di errore Pϵ. Infatti Pϵ si ottiene ora come valore atteso, pesando i contributi σ2q(k) con le rispettive probabilità:
Pϵ=Ek{σ2q(k)}=L⎲⎳k= 1pkσ2q(k)
in cui pk=∫IkpX(x)dx è la probabilità che x∈Ik. Il modo ottimo di disporre i confini (θk− 1,θk) che delimitano Ik, in modo da rendere minima Pϵ, è noto come algoritmo di Lloyd-Max↓ [66] [66] Il metodo è iterativo, ed inizia suddividendo l’intervallo Δx in modo uniforme. Per ogni iterazione:

- si deteminano i valori quantizzati xk (detti centroidi) come xk=E{x∈Ik}=∫Ikx⋅pX(x⁄k)dx=(∫IkxpX(x)dx)/(pk). In tal modo, i valori xk si spostano (internamente a Ik) verso la regione in cui pX(x) ha un valore più elevato, ovvero dove la v.a. si addensa;
- si ri-calcolano i confini di decisione θk come θk=(xk+xk+ 1)/(2), seguendo lo spostamento degli xk.

Le iterazioni si arrestano quando non si riscontrano cambiamenti apprezzabili. , ed ottiene il risultato di determinare errori più grandi per intervalli rari, ed errori più piccoli per intervalli più probabili.
Nella quantizzazione del segnale vocale, anche se è arbitrario identificare con esattezza una pX(x), si verifica strumentalmente che quest’ultima è addensata nelle regioni con valori più piccoli. Per questo motivo, la legge di quantizzazione che si è adottata per ottenere gli 8 bit a campione utilizzati nel pcm segue un andamento logaritmico [67] [67]L’andamento esatto della curva segue uno di due standard, denominati legge μ (per USA e Giappone) e legge A (per gli altri), livemente diverse nella definizione, ma sostanzialmente equivalenti., dimezzando progressivamente la pendenza della caratteristica di ingresso-uscita del quantizzatore.

codifica lineare | PCM legge A
`s0000000wxyz` | `s000wxyz`
`s0000001wxyz` | `s001wxyz`
`s000001wxyza` | `s010wxyz`
`s00001wxyzab` | `s011wxyz`
`s0001wxyzabc` | `s100wxyz`
`s001wxyzabcd` | `s101wxyz`
`s01wxyzabcde` | `s110wxyz`
`s1wxyzabcdef` | `s111wxyz`

Figura 4.15 Caratteristica i/o di un quantizzatore logaritimco e relativa tabella di codifica
La fig. 4.15↑ mostra un esempio di tale realizzazione (per i soli valori positivi), evidenziando come il risultato possa essere approssimato individuando (a partire dall’origine) regioni di valori di ingresso con una ampiezza che di volta in volta raddoppia, e suddividendo ogni regione in un uguale numero di intervalli equispaziati. La caratteristica non lineare è realizzabile per via completamente numerica: si attua un campionamento con legge lineare, con un numero di livelli molto maggiore del necessario (es con 4096 = 212 livelli). Il numero di bit pari a zero nella parte più significativa del campione individua la regione dei valori di ingresso, mentre i bit rimanenti sono shiftati a destra, per mantenere costante il numero di intervalli per regione, ottenendo in definitiva una rappresentazione in virgola mobile del valore del campione.
Esempio La tabella a destra di fig. 4.15↑ esemplifica il processo di conversione pcm legge A↓, in cui la codifica lineare è di 12 cifre, mentre gli 8 bit della codifica pcm si suddividono in un bit di segno, tre di esponente e quattro di mantissa. Il msb della codifica lineare rappresenta il segno (s), e resta inalterato. Il numero di zeri più significativi individua in quale delle 8 regioni cade il valore di ingresso, rappresentato da tre bit nel codice pcm. Infine delle restanti cifre di ingresso, se ne conservano solo le 4 più significative. Ad esempio, il valore 100000001010, con quattro cifre significative, diviene 1-000-1010 (come risulta dalla prima riga della tabella), mentre 0001100110101 diventa 0-101-100, come riporta la sesta riga.
I risultati del mapping ora esposto possono essere inseriti in una rom come coppie di ingresso-uscita, ovvero come coppie uscita-ingresso per il dispositivo che effettua il procedimento inverso.
Le prossime sezioni non tengono più conto delle questioni relative alla quantizzazione dei campioni, anche se nella realizzazione di dispositivi reali può rivestire interesse di progetto.
PrecSezione 4.1: Teorema del campionamento SuCapitolo 4: Campionamento, quantizzazione ed elaborazione numerica Section 4.3: Trasformata di Fourier di sequenzeSegue